// 引入富文本解析插件
var WxParse = require('../../../wxParse/wxParse.js');
// 引入公用的自定义函数
var $ = require('../../../utils/js.js');
var img_src = $.img_src;
var $time = require('../../../utils/time.js');
var dao_ji_shi;

Page({
  // 页面的初始数据
  data: {
    // 图片路径的公用部分
    img_src: img_src,

    // 用户信息
    user_data: "",
    // 拼团的id
    tuan_team_id: "",
    // 拼团数据
    data: "",
    // 参团人信息
    list_data: [],
    // 商品信息
    goods_data: "",

    // 获取到的种类列表数据
    type_list_data: [],
    // 选中的种类数据数组
    type_data_arr: [],
    // 选中的种类数据
    type_data: "",

    // 拼团状态
    pt_type: 0,

    // 倒计时的时间戳
    djs_time: "",
    // 倒计时的时间
    djs_arr: "",

    // 是否显示弹框
    tan_kuang: false,
    // 是否显示购买弹出框
    buy: false,

    // 购买的数量
    buy_number: 1,
    // 购买的类型
    buy_type: 1,
  },
  // 生命周期函数--监听页面加载
  onLoad: function(options) {
    // 存储拼团的id
    this.setData({
      tuan_team_id: options.id,
    })

    // 获取用户信息
    this.setData({
      user_data: getApp().data.user_data,
    })

    // 获取拼团数据
    this.get_data();
  },
  // 生命周期函数--监听页面显示
  onShow: function() {
    if (this.data.shua_xin) {
      // 获取该商品的数据
      this.get_data();
    } else {
      this.setData({
        shua_xin: true,
      })
    }
  },
  // 自定义函数   开始
  // 获取用户数据
  login_fun(e) {
    var user_data = $.value(e);
    this.setData({
      user_data: user_data
    })
    // 获取当前用户的拼团状态
    this.get_pt_type();
  },
  // 获取拼团数据
  get_data() {
    // 获取拼团的id
    var tuan_team_id = this.data.tuan_team_id;
    $.ajax_get({
      url: "/api/tuan/detail",
      data: {
        tuan_team_id: tuan_team_id
      },
      success: (res) => {
        var data = res.data.data;
        console.log("拼团数据", data);
        // 获取参团人信息
        var list_data = data.tuan_team_users;
        // 获取拼团商品的数据
        var goods_data = data.goods;
        var type_list_data = [];
        var type_data_arr = [];
        // 如果该商品有规格
        var spec = data.spec;
        if (spec) {
          goods_data.spec_item = data.spec_item;
          for (var key in spec) {
            type_list_data.push({
              title: key,
              data: spec[key],
            })
            type_data_arr.push("");
          }
        }
        this.setData({
          // 拼团信息
          data: data,
          // 参团人信息
          list_data: list_data,
          // 商品信息
          goods_data: goods_data,
          // 规格列表数据
          type_list_data: type_list_data,
          // 选中的规格
          type_data_arr: type_data_arr
        })
        // 获取当前用户的拼团状态
        this.get_pt_type();

        // 获取当前的时间戳
        var now_time = $time.now_time().time;
        // 获取结束时间的时间戳
        var end_time = data.end_time * 1000;
        // 计算剩余的时间戳
        var djs_time = end_time - now_time;
        // 获取倒计时
        var djs = $time.get_djs(djs_time);
        // 更新倒计时
        this.setData({
          djs_time: djs_time,
          djs_arr: djs.split(":"),
        })
        // 调用倒计时函数
        this.djs_fun();
      }
    })
  },
  // 倒计时函数
  djs_fun() {
    // 清除计时器
    clearInterval(dao_ji_shi);
    dao_ji_shi = setInterval(() => {
      // 获取倒计时的时间戳
      var djs_time = this.data.djs_time;
      if (djs_time > 0) {
        djs_time -= 1000;
        // 获取倒计时
        var djs = $time.get_djs(djs_time);
        // 更新倒计时
        this.setData({
          djs_time: djs_time,
          djs_arr: djs.split(":"),
        })
      } else {
        // 清除计时器
        clearInterval(dao_ji_shi);
      }
    }, 1000);
  },
  // 获取该用户的拼团状态
  get_pt_type() {
    // 获取用户信息
    var user_data = this.data.user_data;
    // 该用户的拼团状态 0->没有参与拼团; 2->参团用户
    var pt_type = 0;
    // 如果有用户数据
    if (user_data) {
      // 获取拼团信息
      var list_data = this.data.list_data;
      list_data.forEach((obj) => {
        if (obj.user_id == user_data.id) {
          pt_type = 2;
        }
      })
    }
    this.setData({
      pt_type: pt_type
    })
  },
  // 点击立即参团
  buy_fun() {
    var deng_lu = $.deng_lu();
    if (deng_lu) {
      this.setData({
        tan_kuang: true,
      })
      this.setData({
        buy: true,
      })
    } else {
      this.setData({
        login_title: "参团功能需要授权才能使用，请授权后再试。",
        login_show: true,
      })
    }
  },
  // 关闭弹框时调用
  tk_back_fun() {
    this.setData({
      tan_kuang: false,
      buy: false,
      pt_list_show: false,
    })
  },
  // 点击种类时触发
  type_fun(e) {
    var index = $.data(e, "index");
    var type_index = $.data(e, "type_index");
    var type_list_data = this.data.type_list_data;
    var type_data_arr = this.data.type_data_arr;
    type_data_arr[index] = type_list_data[index].data[type_index].item_id;
    this.setData({
      type_data_arr: type_data_arr,
    })
    var goods_data = this.data.goods_data;
    var type_key = this.data.type_data_arr.join("_");
    var type_data = goods_data.spec_item[type_key];
    if (!type_data) {
      type_data = "";
    }
    this.setData({
      type_data: type_data,
    })
  },
  // 购买数量-1
  jian_fun(e) {
    var value = e.detail.value;
    this.setData({
      buy_number: value
    })
  },
  // 输入购买数量
  input_fun(e) {
    var value = e.detail.value;
    this.setData({
      buy_number: value
    })
  },
  // 购买数量+1
  jia_fun(e) {
    var value = e.detail.value;
    this.setData({
      buy_number: value
    })
  },
  // 点击购买弹框中的确定时触发
  tk_buy_fun() {
    if (this.data.type_list_data.length > 0) {
      var type_data = this.data.type_data;
      if (type_data) {
        // 获取该规格的购买数量
        var buy_number = this.data.buy_number;
        // 获取该规格的库存
        if (type_data.store_count) { // 有库存
          // 购买数量大于库存
          if (buy_number > type_data.store_count) {
            this.setData({
              buy_number: type_data.store_count
            })
            $.dui_hua({
              title: "库存不足",
              content: "购买数量大于库存，已自动修改为最大库存。",
              l_show: false,
            })
            return false;
          }
        } else { // 无库存
          this.setData({
            buy_number: 0
          })
          $.dui_hua({
            title: "库存不足",
            content: "该种类的商品库存不足，请联系商家或换个种类。",
            l_show: false,
          })
          return false;
        }
      } else {
        $.ti_shi("请选择商品的类型");
        return false;
      }
    } else {
      var goods_data = this.data.goods_data;
      if (!goods_data.store_count) {
        $.dui_hua({
          title: "库存不足",
          content: "该商品的库存不足，请联系商家。",
          l_show: false,
        })
        return false;
      }
    }
    // 发起拼团的函数
    this.fqpt_fun();
  },
  // 发起拼团的函数
  fqpt_fun() {
    // 获取用户数据
    var user_data = this.data.user_data;
    // 获取拼团数据
    var data = this.data.data;
    // 获取列表数据
    var goods_data = this.data.goods_data;
    // 获取购买数量
    var buy_number = this.data.buy_number;

    var goods_obj = {
      // 团购活动id
      tuan_id: data.tuan_id,
      // 商品id
      goods_id: goods_data.id,
      // 商品名称
      goods_name: goods_data.goods_name,
      // 商品价格
      goods_price: goods_data.shop_price,
      // 商品图片
      img: goods_data.good_image,
      // 商品数量
      goods_num: buy_number,
      // 拼团价格
      tuan_price: data.tuan_price,
      // 拼团人的头像
      avatar: user_data.avatar,
      // 拼团人的昵称
      nickname: user_data.nickname
    }

    // 获取选中的规格数据
    var type_data = this.data.type_data;
    // 如果有选规格
    if (type_data) {
      goods_obj.goods_price = type_data.sku;
      goods_obj.tuan_price = type_data.sku;
      goods_obj.item_id = type_data.item_id;
      goods_obj.spec_key = type_data.key;
      goods_obj.spec_key_name = type_data.key_name;
    } else {
      goods_obj.item_id = "";
      goods_obj.spec_key = "";
      goods_obj.spec_key_name = "";
    }
    var goods_arr = [goods_obj];
    // 存储选中的商品
    getApp().data.buy_goods = goods_arr;
    // 跳转到订单
    $.open("/pages/goods/pin_tuan_ding_dan/pin_tuan_ding_dan?id=" + this.data.tuan_team_id);
    console.log(goods_obj);
    // 关闭弹框
    this.tk_back_fun();
  },
})